﻿/*
 * 请尊重 EntLib.com 的辛苦奉献及版权！

1.未获商业授权之前，不得将本软件用于商业用途（包括但不限于企业网站、经营性网站、以营利为目的或实现盈利的网站）。购买商业授权请登陆 www.entlib.com 了解最新说明。 
2.未经官方许可，不得对本软件或与之关联的商业授权进行出租、出售、抵押或发放子许可证。 
3.不管您的网站是否整体使用 EntLib.com 电子商务系统 ，还是部份栏目使用 EntLib.com 电子商务系统，在您使用了EntLib.com 电子商务系统的网站主页上必须加上 EntLib.com 官方网址(www.entlib.com)的链接。 
4.未经官方许可，禁止在 EntLib.com 电子商务系统的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。 
5.如果您未能遵守本协议的条款，您的授权将被终止，所被许可的权利将被收回，并承担相应法律责任。
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using AjaxControlToolkit;
using EntLibEC.Biz.Basic;
using System.Collections;
using EntLibEC.Info.Basic;
using System.Collections.Specialized;
using EntLibEC.Cmn;

namespace EntLibEC.Shopping.WebServices
{
    /// <summary>
    /// Summary description for WS_Area
    /// </summary>
    [WebService(Namespace = "http://entlib.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class WS_Area : System.Web.Services.WebService
    {

        [WebMethod]
        public CascadingDropDownNameValue[] GetProvinceNames(string knownCategoryValues, string category)
        {
            List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
            SortedList sl = ASPManager.GetInstance().GetProvinceList(true);

            if (sl != null)
            {
                foreach (AreaInfo item in sl.Keys)
                {
                    values.Add(new CascadingDropDownNameValue(item.ProvinceName, item.SysNo.ToString()));
                }
            }
            return values.ToArray();
        }

        [WebMethod]
        public CascadingDropDownNameValue[] GetCityNames(string knownCategoryValues, string category)
        {
            StringDictionary kcv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);

            if (!kcv.ContainsKey("Province"))
                return null;

            List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();

            SortedList sl = ASPManager.GetInstance().GetCityList(Convert.ToInt32(kcv["Province"]), true);
            if (sl != null)
            {
                foreach (AreaInfo item in sl.Keys)
                {
                    values.Add(new CascadingDropDownNameValue(item.CityName, item.SysNo.ToString()));
                }
            }

            return values.ToArray();
        }

        [WebMethod]
        public CascadingDropDownNameValue[] GetDistrictNames(string knownCategoryValues, string category)
        {
            StringDictionary kcv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);

            if (!kcv.ContainsKey("City"))
                return null;

            List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();

            SortedList sl = ASPManager.GetInstance().GetDistrictList(Convert.ToInt32(kcv["City"]), true);
            if (sl != null)
            {
                foreach (AreaInfo item in sl.Keys)
                {
                    values.Add(new CascadingDropDownNameValue(item.DistrictName, item.SysNo.ToString()));
                }
            }

            return values.ToArray();
        }
    }
}
